<HTML><HEAD><TITLE>shelf_abolish(+ShelfHandle)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">Non-logical Variables, Arrays, Bags, Shelves and Stores</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>shelf_abolish(+ShelfHandle)</H1>
Destroy a shelf explicitly
<DL>
<DT><EM>ShelfHandle</EM></DT>
<DD>A shelf handle
</DD>
</DL>
<H2>Description</H2>
	This explicitly destroys a previously created shelf object and
	frees all its memory.  Invoking shelf_abolish/1 is optional,
	the shelf will be automatically destroyed when the system
	backtracks across the call to shelf_create/2,3, or when the
	ShelfHandle is no longer needed and gets garbage collected.
<P>
	Using the ShelfHandle after it has been destroyed will lead
	to an error message. Destroying an already destroyed shelf
	does nothing and is silently accepted.
    
<H3>Modes and Determinism</H3><UL>
<LI>shelf_abolish(+) is det
</UL>
<H3>Exceptions</H3>
<DL>
<DT><EM>(4) instantiation fault </EM>
<DD>ShelfHandle is not instantiated
<DT><EM>(5) type error </EM>
<DD>ShelfHandle is not a shelf
<DT><EM>(40) stale object handle </EM>
<DD>ShelfHandle refers to an already destroyed shelf
</DL>
<H2>Examples</H2>
<PRE>For examples see shelf_create/2,3.</PRE>
<H2>See Also</H2>
<A HREF="../../kernel/storage/shelf_create-2.html">shelf_create / 2</A>, <A HREF="../../kernel/storage/shelf_create-3.html">shelf_create / 3</A>, <A HREF="../../kernel/storage/shelf_get-3.html">shelf_get / 3</A>, <A HREF="../../kernel/storage/shelf_set-3.html">shelf_set / 3</A>
</BODY></HTML>
